#ifndef USAGE_H
#define USAGE_H

#include <stdio.h>

struct Usage
{
	static int Display() { return Display(wprintf); }

	template<typename F1> static int Display(F1 wprintf)
	{
		wprintf(L"tddConsole usage:\n");
		wprintf(L"\ttddConsole dirname, or\n");
		wprintf(L"\ttddConsole dllname <test specifications>\n");
		wprintf(L"\t\n");
		wprintf(L"\tdirname - search directories recursively for and run test dlls,\n");
		wprintf(L"\t          starting in dirname\n");
		wprintf(L"\tdllname - run the tests in dllname,\n");
		wprintf(L"\t          subject to <test specifications> options\n");
		wprintf(L"\t\n");
		wprintf(L"\t<test specifications>:\n");
		wprintf(L"\t\n");
		wprintf(L"\tnamespace1::class1 <namespace2::class2, ...> - run all tests in the namespace1::class1,\n");
		wprintf(L"\t                                               then namespace2::class2, etc.\n");
		wprintf(L"\tnamespace1::class1.specifictest1 <namespace2::class2.specifictest2, ...> - run\n");
		wprintf(L"\t                                               specifictest1 from namespace1::class1, etc.\n");
		wprintf(L"\ttddConsole dllname -? or /? - dump all test names in specified dll.\n");

		return -1;
	}
};

#endif
